﻿Imports MySQL
Imports MySQLCommand
Imports System.Data.SqlClient
Imports System.Configuration


Public Class Frm_HoaDonNhapKho
    Dim Tbl_SanPhamChon As DataTable
    Dim tongtien As Integer = 0

#Region "===================  Function KÉT NỐI DB =============="
    Sub connect()
        clsSQL.setConnection(ConfigurationSettings.AppSettings("connect"))
        If clsSQL.Connected = False Then
            MsgBox("Lỗi kết nối dữ liệu !!")
        End If
    End Sub
#End Region

#Region "===================  Nút thêm HĐ =============="

    Private Sub Cmd_ThemHD_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cmd_ThemHD.Click
        TaoMaHD()
    End Sub

#End Region

#Region "===================  Function Tạo mã hóa đơn  =============="

    Private Sub TaoMaHD()
        Dim ds As New DataSet
        clsSQL.FillDataSet("SP_HOADONNHAP_XEM", ds, "Tbl_HoaDonNhap")
        If ds.Tables("tbl_hoadonnhap").Rows.Count = 0 Then
            Txt_MaHD.Text = 1

        Else
            Dim n As Integer = ds.Tables("tbl_hoadonnhap").Rows.Count
            Txt_MaHD.Text = ds.Tables("tbl_hoadonnhap").Rows(n - 1).Item("mahdn") + 1
        End If
        TaobangSanphamchon()
        Fc_XoaDulieuText()
    End Sub
#End Region

#Region "===================  Function XÓA DỮ LIỆU TEXTBOX  =============="
    Private Sub Fc_XoaDulieuText()
        Cbo_MaNCC.Text = ""
        Txt_NguoiGiao.Text = ""
        Txt_HinhThucTanhToan.Text = ""
        Txt_TongTien.Text = 0
        Txt_ConLai.Text = 0
        Txt_TamUng.Text = 0
        Cbo_LoaiSP.Text = ""
        Cbo_TenSP.Text = ""
        Txt_DonViTinh.Text = ""
        Txt_BaoHanh.Text = ""
        Txt_GiaNhap.Text = 0
        Txt_GiaBan.Text = 0
        Txt_Soluong.Text = 0
        Txt_Soseri.Text = ""
    End Sub

#End Region

#Region "===================  Function Load dữ liệu cho combobox Nhà cung cấp  =============="

    Private Sub ComboNCN_Load()
        Dim ds As New DataSet
        clsSQL.FillDataSet("HSP_NhaCungCap_XEM", ds, "Tbl_NCC")
        Cbo_MaNCC.DataSource = ds.Tables("TBL_NCC")
        Cbo_MaNCC.DisplayMember = "TENNCC"
        Cbo_MaNCC.ValueMember = "MANCC"
        Cbo_MaNCC.AutoCompleteMode = AutoCompleteMode.Suggest
        Cbo_MaNCC.AutoCompleteSource = AutoCompleteSource.ListItems
    End Sub
#End Region

#Region "===================  Function Load dữ liệu cho combobox Loai Sản phẩm  =============="

    Private Sub CboLoaiSP_Load()
        Dim ds As New DataSet
        clsSQL.FillDataSet("HSP_LOAISANPHAM_XEM", ds, "Tbl_LOAISANPHAM")
        Cbo_LoaiSP.DataSource = ds.Tables("Tbl_LOAISANPHAM")
        Cbo_LoaiSP.DisplayMember = "TENLOAISP"
        Cbo_LoaiSP.ValueMember = "MALOAISP"
        Cbo_LoaiSP.AutoCompleteMode = AutoCompleteMode.Suggest
        Cbo_LoaiSP.AutoCompleteSource = AutoCompleteSource.ListItems
    End Sub
#End Region

#Region "===================  Function Load dữ liệu cho combobox Tên sản phẩm  =============="

    Private Sub CboSanPham_Load()
        Dim ds As New DataSet
        clsSQL.FillDataSet("HSP_SANPHAM_XEMTHEOLOAI", ds, "Tbl_SANPHAM", Cbo_LoaiSP.SelectedValue)
        Cbo_TenSP.DataSource = ds.Tables("Tbl_SANPHAM")
        Cbo_TenSP.DisplayMember = "TENSP"
        Cbo_TenSP.ValueMember = "MASP"
        Cbo_TenSP.AutoCompleteMode = AutoCompleteMode.Suggest
        Cbo_TenSP.AutoCompleteSource = AutoCompleteSource.ListItems
    End Sub
#End Region

#Region "===================  Function Kiểm tra định dạng số  =============="

    Private Sub Fc_NumberFormat(ByVal Ctrl As Control)
        Dim s As String
        s = Ctrl.Text

        Ctrl.Text = s
    End Sub

#End Region

#Region "===================  LOAD FORM  =============="

    Private Sub Frm_HoaDonNhapKho_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Try
            Txt_DonViTinh.AutoCompleteMode = AutoCompleteMode.Suggest
            Txt_DonViTinh.AutoCompleteSource = AutoCompleteSource.ListItems
            txt_nguoilap.Text = TenNVDangNhap

            connect()
            TaoMaHD()
            ComboNCN_Load()
            CboLoaiSP_Load()
            Txt_TongTien.Text = 0
            Txt_TamUng.Text = 0
            Txt_ConLai.Text = 0
            GV_SanPham.AllowUserToAddRows = False
            Cbo_TinhTrangMoi.SelectedItem = "Mới"
            TaobangSanphamchon()
        Catch ex As Exception
            MsgBox("Lỗi kết nối !!!")
        End Try
    End Sub
#End Region

    Private Sub Cbo_LoaiSP_SelectedValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Cbo_LoaiSP.SelectedValueChanged
        CboSanPham_Load()
    End Sub
#Region "===================  HÀM TẠO BẢNG SẢN PHẨM ĐƯỢC CHỌN  =============="

    Public Sub TaobangSanphamchon()
        Tbl_SanPhamChon = New System.Data.DataTable
        Tbl_SanPhamChon.Dispose()
        GV_SanPham.DataSource = Tbl_SanPhamChon
        GV_SanPham.ReadOnly = True
        '*** Column ***'
        Tbl_SanPhamChon.Columns.Add("masp")
        Tbl_SanPhamChon.Columns.Add("maloaisp")
        Tbl_SanPhamChon.Columns.Add("tensp")
        Tbl_SanPhamChon.Columns.Add("donvitinh")
        Tbl_SanPhamChon.Columns.Add("soseri")
        Tbl_SanPhamChon.Columns.Add("thoigianbaohanh")
        Tbl_SanPhamChon.Columns.Add("tinhtrangmoi")
        Tbl_SanPhamChon.Columns.Add("soluong")
        Tbl_SanPhamChon.Columns.Add("dongiaban")
        Tbl_SanPhamChon.Columns.Add("dongianhap")
        ''============================
    End Sub
#End Region

#Region "===================  FUCNTION ADD SẢN PHẨM VÀO GIỎ HÀNG  =============="
    Private Sub GioHang_Add()
        Dim dr As System.Data.DataRow
        dr = Tbl_SanPhamChon.NewRow
        dr("masp") = Cbo_TenSP.SelectedValue
        dr("tensp") = Cbo_TenSP.Text
        dr("maloaisp") = Cbo_LoaiSP.SelectedValue
        dr("donvitinh") = Txt_DonViTinh.Text
        dr("soseri") = Txt_Soseri.Text
        dr("thoigianbaohanh") = Txt_BaoHanh.Text
        dr("tinhtrangmoi") = Cbo_TinhTrangMoi.Text
        dr("soluong") = Txt_Soluong.Text
        dr("dongiaban") = Txt_GiaBan.Text
        dr("dongianhap") = Txt_GiaNhap.Text
        Tbl_SanPhamChon.Rows.Add(dr)
        GV_SanPham.DataSource = Tbl_SanPhamChon
        MsgBox("Đã thêm một một sản phẩm !! ")
    End Sub
#End Region

#Region "===================  FUCNTION CẬP NHẬT GIỎ HÀNG  =============="
    Private Sub GioHang_UpDate()
        Tbl_SanPhamChon.Rows(GV_SanPham.CurrentRow.Index).Item("donvitinh") = Txt_DonViTinh.Text
        Tbl_SanPhamChon.Rows(GV_SanPham.CurrentRow.Index).Item("thoigianbaohanh") = Txt_BaoHanh.Text
        Tbl_SanPhamChon.Rows(GV_SanPham.CurrentRow.Index).Item("dongianhap") = Txt_GiaNhap.Text
        Tbl_SanPhamChon.Rows(GV_SanPham.CurrentRow.Index).Item("soluong") = Txt_Soluong.Text
        Tbl_SanPhamChon.Rows(GV_SanPham.CurrentRow.Index).Item("soseri") = Txt_Soseri.Text
        Tbl_SanPhamChon.Rows(GV_SanPham.CurrentRow.Index).Item("tinhtrangmoi") = Cbo_TinhTrangMoi.Text
        Tbl_SanPhamChon.Rows(GV_SanPham.CurrentRow.Index).Item("dongiaban") = Txt_GiaBan.Text
        MsgBox("Đã sử thông tin sản phẩm !!")
    End Sub
#End Region


#Region "===================  FUCNTION TÍNH TỔNG TIỀN  =============="
    Public Sub Fc_TinhTongTien()
        Dim i As Integer
        tongtien = 0
        For i = 0 To Tbl_SanPhamChon.Rows.Count - 1
            tongtien = tongtien + ((Tbl_SanPhamChon.Rows(i).Item("soluong") * Tbl_SanPhamChon.Rows(i).Item("dongianhap")))
        Next
        If Chk_VAT.Checked = True Then
            tongtien = tongtien + tongtien * 10 / 100
        End If
        Txt_TongTien.Text = tongtien
    End Sub
#End Region

#Region "===================  NÚT THÊM SẢN PHẨM  =============="

    Private Sub Cmd_themSP_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cmd_themSP.Click
        Try
            If Cbo_LoaiSP.Text = "" Then
                MsgBox("Chọn loại sản phầm nhập kho !")
                Cbo_LoaiSP.Select()
            ElseIf Cbo_TenSP.Text = "" Then
                MsgBox("Chọn sản phẩm nhập kho ! ")
                Cbo_TenSP.Select()
            ElseIf Cbo_TinhTrangMoi.Text = "" Then
                MsgBox("Tình trạng mới của sản phẩm ?")
                Cbo_TinhTrangMoi.Select()
            ElseIf Txt_DonViTinh.Text = "" Then
                MsgBox("Đơn vị tính của sản phẩm ?")
                Txt_DonViTinh.Select()
            ElseIf Txt_BaoHanh.Text = "" Then
                Txt_BaoHanh.Text = 0
                Txt_BaoHanh.Select()
            ElseIf Txt_GiaNhap.Text = "" Or Txt_GiaNhap.Text = 0 Then
                MsgBox("Giá nhập kho sản phẩm chưa được cung cấp !")
                Txt_GiaNhap.Select()
            ElseIf Txt_GiaBan.Text = "" Then
                Txt_GiaBan.Text = 0
                Txt_GiaBan.Select()
            ElseIf Txt_Soluong.Text = "" Or Txt_Soluong.Text = 0 Then
                MsgBox("Số lượng sản phẩm nhập kho chưa được cung cấp !")
                Txt_Soluong.Select()
            ElseIf Txt_Soseri.Text = "" Then
                Txt_Soseri.Text = 0
                Txt_Soseri.Select()
                tongtien = 0
            Else
                If Tbl_SanPhamChon.Select("masp='" & Cbo_TenSP.SelectedValue & "' and tinhtrangmoi='" & Cbo_TinhTrangMoi.Text & "'").Count >= 1 Then
                    GioHang_UpDate()
                Else
                    GioHang_Add()
                End If
                Fc_TinhTongTien()

            End If
        Catch ex As Exception
            MsgBox("Lỗi hệ thống, vui lòng thử lại !!! ")
        End Try
    End Sub
#End Region

    Private Sub Txt_TamUng_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles Txt_TamUng.LostFocus
        Txt_ConLai.Text = Val(Txt_TongTien.Text) - Val(Txt_TamUng.Text)
    End Sub

#Region "===================  NÚT THÊM XÓA PHẨM  =============="

    Private Sub Cmd_XoaSP_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cmd_XoaSP.Click
        Try
            tongtien = 0
            Tbl_SanPhamChon.Rows(GV_SanPham.CurrentRow.Index).Delete()
            GV_SanPham.DataSource = Tbl_SanPhamChon
            Fc_TinhTongTien()
            Txt_TongTien.Text = tongtien
        Catch ex As Exception
            MsgBox("Không còn sản phẩm !!! ")
        End Try
    End Sub

#End Region

#Region "===================  XỦ LÝ SỰ KIỆN CLICK LÊN DANH SÁCH SẢN PHẨM  =============="

    Private Sub GV_SanPham_CellClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles GV_SanPham.CellClick
        Try
            Cbo_TenSP.SelectedValue = Tbl_SanPhamChon.Rows(GV_SanPham.CurrentRow.Index).Item("masp")
            Cbo_LoaiSP.SelectedValue = Tbl_SanPhamChon.Rows(GV_SanPham.CurrentRow.Index).Item("maloaisp")
            Txt_DonViTinh.Text = Tbl_SanPhamChon.Rows(GV_SanPham.CurrentRow.Index).Item("donvitinh")
            Txt_Soseri.Text = Tbl_SanPhamChon.Rows(GV_SanPham.CurrentRow.Index).Item("soseri")
            Txt_BaoHanh.Text = Tbl_SanPhamChon.Rows(GV_SanPham.CurrentRow.Index).Item("thoigianbaohanh")
            Cbo_TinhTrangMoi.Text = Tbl_SanPhamChon.Rows(GV_SanPham.CurrentRow.Index).Item("tinhtrangmoi")
            Txt_Soluong.Text = Tbl_SanPhamChon.Rows(GV_SanPham.CurrentRow.Index).Item("soluong")
            Txt_GiaBan.Text = Tbl_SanPhamChon.Rows(GV_SanPham.CurrentRow.Index).Item("dongiaban")
            Txt_GiaNhap.Text = Tbl_SanPhamChon.Rows(GV_SanPham.CurrentRow.Index).Item("dongianhap")
        Catch ex As Exception

        End Try
    End Sub

#End Region

#Region "===================  NÚT LƯU HÓA ĐƠN  =============="

    Private Sub Cmd_LuuHD_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cmd_LuuHD.Click
        Try
            If Tbl_SanPhamChon.Rows.Count = 0 Then
                MsgBox("Không có sản phẩm nhập kho, vui lòng thêm danh sách sản phẩm nhập kho !!!")
                Exit Sub
                'ElseIf Txt_NguoiLap.Text = "" Then
                '    MsgBox("Người lập phiếu chưa được cung cấp !")
                '    Txt_NguoiLap.Select()
            ElseIf Txt_NguoiGiao.Text = "" Then
                MsgBox("Thông tin người giao hàng ?")
                Txt_NguoiGiao.Select()
            ElseIf Txt_HinhThucTanhToan.Text = "" Then
                MsgBox("Hình thức thanh toán ?")
                Txt_HinhThucTanhToan.Select()
            ElseIf Txt_NguoiNhan.Text = "" Then
                MsgBox("Thông tin người nhận ?")
                Txt_NguoiNhan.Select()
            Else

                Dim n As Integer
                For n = 0 To Tbl_SanPhamChon.Rows.Count - 1
                    clsSQL.ExecCommand("HSP_HOADONNHAP_THEM",
                                   Txt_MaHD.Text,
                                   Pic_NgayLap.Value,
                                   Txt_NguoiNhan.Text,
                                   Cbo_MaNCC.SelectedValue,
                                   Txt_NguoiGiao.Text,
                                   Txt_HinhThucTanhToan.Text,
                                   Txt_TongTien.Text,
                                   Txt_ConLai.Text,
                                   MaNVDangNhap,
                                   Tbl_SanPhamChon.Rows(n).Item("masp"),
                                   Tbl_SanPhamChon.Rows(n).Item("maloaisp"),
                                   Tbl_SanPhamChon.Rows(n).Item("tensp"),
                                   Tbl_SanPhamChon.Rows(n).Item("donvitinh"),
                                   Tbl_SanPhamChon.Rows(n).Item("soseri"),
                                   Tbl_SanPhamChon.Rows(n).Item("thoigianbaohanh"),
                                   Tbl_SanPhamChon.Rows(n).Item("tinhtrangmoi"),
                                   Tbl_SanPhamChon.Rows(n).Item("soluong"),
                                   Tbl_SanPhamChon.Rows(n).Item("dongianhap"),
                                   Tbl_SanPhamChon.Rows(n).Item("dongiaban"),
                                   10)
                Next
                MsgBox("Đã thêm 1 Hóa đơn !")
                TaoMaHD()
            End If

        Catch ex As Exception
            MsgBox("KHONG LUU DUOC")
        End Try

    End Sub

#End Region


    Private Sub Cmd_LoaiSPAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cmd_LoaiSPAdd.Click
        Frm_DanhMucSanPham.Show()
    End Sub
#Region "===================  NÚT CHỌN VAT  =============="

    Private Sub Chk_VAT_CheckStateChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Chk_VAT.CheckStateChanged
        Fc_TinhTongTien()
    End Sub


#End Region


    Private Sub Cmd_Thoat_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cmd_Thoat.Click
        Me.Close()
    End Sub
End Class